import cloneDeep from 'lodash.clonedeep'

export function convertRoutes(nodes) {
    if (!nodes) return null

    nodes = cloneDeep(nodes)

    let queue = Array.isArray(nodes) ? nodes.concat() : [nodes]

    while (queue.length) {
        const levelSize = queue.length

        for (let i = 0; i < levelSize; i++) {
            const node = queue.shift()

            if (!node.children || !node.children.length) continue

            node.children.forEach(child => {
                // 转化相对路径
                if (child.path[0] !== '/' && !child.path.startsWith('http')) {
                    child.path = node.path.replace(/(\w*)[/]*$/, `$1/${child.path}`)
                }
            })

            queue = queue.concat(node.children)
        }
    }

    return nodes
}
